﻿using Abp.Domain.Entities.Auditing;
using JetBrains.Annotations;
using System;

namespace Camc.Quality.StoreManagement.StoragePut
{
    public class StoreStock : FullAuditedEntity<Guid>
    {
        /// <summary>
        /// 汇总id
        /// </summary>
        [CanBeNull]
        public Guid? CollectBomManagerId { get; set; }
        /// <summary>
        /// 物料细料ID
        /// </summary>
        public Guid MaterialsContentId { get; set; }
        /// <summary>
        /// 仓库ID
        /// </summary>
        public Guid StoreId { get; set; }
        /// <summary>
        /// 仓库名称
        /// </summary>
        public string StroeName { get; set; }
        /// <summary>
        /// 产品图号
        /// </summary>
        public string ProductDrawingNo { get; set; }
        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }
        /// <summary>
        /// 批次
        /// </summary>
        public string Batch { get; set; }
        /// <summary>
        /// 规格
        /// </summary>
        public string Module { get; set; }
        /// <summary>
        ///转批次
        /// </summary>
        public string TurnBatch { get; set; }
        /// <summary>
        /// 总数量
        /// </summary>
        public int TotalQuantity { get; set; }
        /// <summary>
        /// 库存数量
        /// </summary>
        public int StoreQuantity { get; set; }
        /// <summary>
        /// 自由库存数量
        /// </summary>
        public int FreeQuantityStock { get; set; }
        /// <summary>
        /// 可用库存数量（预配套用）
        /// </summary>
        public int UsableQuantityStock { get; set; }
        /// <summary>
        /// 可用预配套数量(配套用)
        /// </summary>
        public int UsableMatingQuantityStock { get; set; }
        /// <summary>
        /// 预配套数量
        /// </summary>
        public int PreSuiteStock { get; set; }
        /// <summary>
        /// 配套数量（无）
        /// </summary>
        public int SuiteStock { get; set; }
        /// <summary>
        /// 出库数量（无）
        /// </summary>
        public int DeliveryStock { get; set; }
        /// <summary>
        /// 预配套状态
        /// </summary>
        public int PreSuiteStatus { get; set; }
        /// <summary>
        /// 配套状态
        /// </summary>
        public int MatingStatus { get; set; }
        /// <summary>
        /// 缺料数量（无）
        /// </summary>
        public int StarvingStock { get; set; }
        /// <summary>
        /// 产品编号(件号)
        /// </summary>
        public string ProductNumber { get; set; }
        /// <summary>
        /// 库存产品编号(件号)
        /// </summary>
        public string StoreProductNumber { get; set; }
        /// <summary>
        /// 可用产品编号(件号)
        /// </summary>
        public string AbilityProductNumber { get; set; }
        /// <summary>
        /// 预配套产品编号(件号)
        /// </summary>
        public string PreSuitProductNumber { get; set; }
        /// <summary>
        /// 配套产品编号(件号)
        /// </summary>
        public string SuitProductNumber { get; set; }
        /// <summary>
        /// 出库产品编号(件号)
        /// </summary>
        public string DeliveryProductNumber { get; set; }
        /// <summary>
        /// 装配任务号
        /// </summary>
        public string AssemblingTaskCode { get; set; }

        /// <summary>
        /// 预配套汇总总量 (芯级汇总)
        /// </summary>
        public int PreSuiteStockAll { get; set; }
        /// <summary>
        /// 缺料汇总总量 (芯级汇总)
        /// </summary>
        public int StarvingStockkAll { get; set; }
        /// <summary>
        /// 出库数量 (芯级汇总)
        /// </summary>
        public int DeliveryStockAll { get; set; }
        /// <summary>
        /// 预配套人
        /// </summary>
        public string PreSuiteName { get; set; }
        /// <summary>
        /// 预配套时间
        /// </summary>
        [CanBeNull]
        public DateTime? PreSuiteTime { get; set; }
        /// <summary>
        /// 配套人
        /// </summary>
        public string CompletePeople { get; set; }
        /// <summary>
        /// 配套时间
        /// </summary>
        [CanBeNull]
        public DateTime? CompleteTime { get; set; }



    }
}
